<?php

namespace app\common\lib;

class Arr
{
    /**
     * 筛选数组,返回关键词搜索的结果
     * @param $list // 搜索数组
     * @param string $sk // 搜索词
     * @return array|mixed
     */
    public static function search($list,$sk=''){
        if(empty($list)){
            return  false;
        }
        $result=[];
        if(empty($sk)){
            return $list;
        }
        foreach ($list as $key => $item) {
            $serialize=json_encode($item, JSON_UNESCAPED_UNICODE);
            if(strpos($serialize,$sk)>0){
                $result[$key]=$item;
            }
        }
        return $result;
    }

    /**
     * 将xml转换为数组
     * @param $xml  需要转化的xml
     * @return mixed
     */
    static function xml_to_array($xml)
    {
        $ob = simplexml_load_string($xml);
        $json = json_encode($ob);
        $array = json_decode($json, true);
        return $array;
    }
    function array_to_object($arr) {
        if (gettype($arr) != 'array') {
            return;
        }
        foreach ($arr as $k => $v) {
            if (gettype($v) == 'array' || getType($v) == 'object') {
                $arr[$k] = (object)array_to_object($v);
            }
        }

        return (object)$arr;
    }
    /**
     * 将数组转化成xml
     * @param $data 需要转化的数组
     * @return string
     */
    static function data_to_xml($data)
    {
        if(empty($data)){
            return false;
        }
        if (is_object($data)) {
            $data = get_object_vars($data);
        }
        $xml = '';
        foreach ($data as $key => $val) {
            if (is_null($val)) {
                $xml .= "<$key/>\n";
            } else {
                if (!is_numeric($key)) {
                    $xml .= "<$key>";
                }
                $xml .= (is_array($val) || is_object($val)) ? self::data_to_xml($val) : $val;
                if (!is_numeric($key)) {
                    $xml .= "</$key>";
                }
            }
        }
        return $xml;
    }

    /**
     * 接收xml数据并转化成数组
     * @return array
     */
    static function getRequestBean()
    {
        $bean = simplexml_load_string(file_get_contents('php://input')); // simplexml_load_string() 函数把 XML 字符串载入对象中。如果失败，则返回 false。
        $request = array();
        foreach ($bean as $key => $value) {
            $request [( string )$key] = ( string )$value;
        }
        return $request;
    }
}